<?php

/**
 * CodeRS - Atviras kodas Lietuvai
 * Copyright (C) 2007 CodeRS www.coders.lt info@coders.lt
 * MightMedia TVS
 * mysql.php - prisijungimui prie duomenų bazės MySQL ir jos apdorojimas
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 * 
 * 
 * Ši programa yra laisva. Jūs galite ją platinti ir/arba modifikuoti
 * remdamiesi Free Software Foundation paskelbtomis GNU Bendrosios
 * Viešosios licencijos sąlygomis: 2 licencijos versija, arba (savo
 * nuožiūra) bet kuria vėlesne versija.
 * 
 * Ši programa platinama su viltimi, kad ji bus naudinga, bet BE JOKIOS
 * GARANTIJOS; be jokios numanomos PERKAMUMO ar TINKAMUMO KONKRETIEMS
 * TIKSLAMS garantijos. Žiūrėkite GNU Bendrąją Viešąją licenciją norėdami
 * sužinoti smulkmenas.
 * 
 * Jūs turėjote kartu su šia programa gauti ir GNU Bendrosios Viešosios
 * licencijos kopija; jei ne - rašykite Free Software Foundation, Inc., 59
 * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**/

class sql {
	public $error = '';
	public $db_time = 0.0; // Visu užklausų trukmė
	public $MysqlUzklausu = 0; // Visos užklausos
	public $uzklausos_info = array();

	private function KiekTruko($Start, $Finish ) {
		$tFrom = explode(' ', $Start);
		$tTo = explode(' ', $Finish);
		$reziume = ((float)$tTo[0] + (float)$tTo[1]) - ((float)$tFrom[0] + (float)$tFrom[1]);
		return $reziume;
	}

	public function uzklausa($query, $file="", $line="") {
		$this->MysqlUzklausu++;

		$u_pradzia = microtime();
		$result = mysql_query($query);
		$u_pabaiga = microtime();

		$mytime = $this->KiekTruko($u_pradzia,$u_pabaiga);
		$this->uzklausos_info[] = $query. ' | ' . $mytime;
		$this->db_time += $mytime;
		if (defined("DEBUG_EXTRA") && DEBUG_EXTRA) echo "<span class='comment'>".nl2br(htmlspecialchars($query,ENT_QUOTES)." - ".round($mytime,3)."s.</span>\n");
		if (!$result) {
			$this->error .= print_r(array('<b>Failas</b>:'=>basename($file),'<b>Eilutė</b>:'=>$line,'<b>Klaidos kodas</b>:'=>mysql_errno(),'<b>Užklausa</b>:'=>$query,'<b>Pagalba</b>:'=>mysql_error()),true);
			return false;
		} else {
			return $result;
		}
	}

	public function free_result($result) {
		return mysql_free_result($result);
	}

	public function rows($query) {
		if (is_resource($query)) {
			return mysql_num_rows($query);
		} else {
			//$this->error .= "Netinkamai nurodytas MYSQL resursas\n";
			return false;
		}
	}

	public function kiek_irasu($table_where) {
		return $this->rows($this->uzklausa("SELECT * FROM ".$table_where));
	}

	public function masyvas($query) {
		if (is_resource($query)) {
			$result = mysql_fetch_assoc($query);
			return $result;
		} else {
			//$this->error .= "Netinkamai nurodytas MYSQL resursas\n";
			return false;
		}
	}

	public function all_masyvas($query) {
		while ($row = mysql_fetch_assoc($query)) {
			$res[] = $row;
		}
		return $res;
	}

	public function fix($sql) {
		if (QUOTES) $sql = stripslashes($sql);
		return mysql_real_escape_string($sql);
	}

	public function __construct($db_host = "", $db_user = "", $db_pass = "", $db_name = "") {
		mysql_connect($db_host, $db_user, $db_pass);
		mysql_select_db($db_name);

		if(mysql_errno() == 2005) {//Duombazės adresas
			die("<div style='font-family:Verdana;font-size:12px;text-align:center;'><b>Blogas prisijungimo prie MySQL adresas, todėl nepavyko prisijungti prie MySQL serverio. Jūs nurodėte adresą: \"$db_host\", o spėjame jis greičiausiai yra \"localhost\" dar gali būti \"mysqlhost\" jeigu naudojatės hostingas.in paslaugomis</b><br><i>Klaidos kodas:</i> ".mysql_errno()."; <i>Klaidos apibudinimas:</i> ".mysql_error().";</div>");
		} elseif(mysql_errno() == 1049) {//Duombazė
			die("<div style='font-family:Verdana;font-size:12px;text-align:center;'><b>Nurodytos duombazės nėra (Jūs nurodėte \"$db_name\"), arba blogai įvedėte duombazę, arba jos išviso nėra!</b><br><i>Klaidos kodas:</i> ".mysql_errno()."; <i>Klaidos apibudinimas:</i> ".mysql_error().";</div>");
		} elseif(mysql_errno() == 1045) {//Slapyvardis arba/ir slaptažodis
				die("<div style='font-family:Verdana;font-size:12px;text-align:center;'><b>Blogas slaptažodis arba slapyvardis todėl negalime prisijungti prie MySQL. Įsitikinkite ar tikrai sukūrėte vartotoją su slaptažodžiui duombazei, tada įsitikinkite ar teisingai užrašėte prisijugnimo duomenis.</b><br><i>Klaidos kodas:</i> ".mysql_errno()."; <i>Klaidos apibudinimas:</i> ".mysql_error().";</div>");
		}
		return true;
	}
}
?>
